<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
    <meta charset="UTF-8">
    <!--    <meta name="viewport" content="width=device-width, initial-scale=1">-->
    <title>Список затрат</title>
    <div th:replace="~{fragments/headTag :: headTag}"></div>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm"
        crossorigin="anonymous"></script>
<div sec:authorize="isAnonymous()">
    <nav th:replace="~{fragments/loginBodyHeader :: loginBodyHeader}"></nav>
</div>
<div sec:authorize="isAuthenticated()">
    <nav th:replace="~{fragments/bodyHeader :: bodyHeader}"></nav>
</div>
<div class="jumbotron bg-light">
    <div class="container py-4">
        <div class="row pb-2 d-flex justify-content-center">
            I N F O
        </div>
        <div class="row">
            <div class="col"></div>
            <div class="col-8 d-flex justify-content-center alert alert-info">
                <div class="row">
                    <p>
                        Это приложение было написано в учебных целях.
                        Использованы Spring Boot, Spring Security, Spring Data JPA,
                        Hibernate, REST, JavaScript, Bootstrap, PostgreSQL, JUnit, Maven, SLF4J, Bean Validation
                    </p>
                    <p>
                        Идея написания пришла от таблицы excel, в которую мы заносили свои ежедневные траты с разбиением
                        по месяцам.
                        Эта таблица хранилась на домашнем компьютере, что доставляло неудобства, и хотелось, чтобы она
                        была всегда под рукой.
                        Оттуда же достались и захаркоженные типы трат (пока без возможности создания своего набора типов
                        трат).
                        Так же предыдущая упрощённая версия приложения позволяла экспортировать данные в файл excel в
                        том же формате и внешнем виде, как это было в оригинальном файле.
                    </p>
                    <!--                    <dl>-->
                    <!--                        <dt>-->
                    <a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button"
                       aria-expanded="false" aria-controls="collapseExample">
                        Текущие возможности приложения
                    </a>
                    <!--                        </dt>-->
                    <div class="collapse" id="collapseExample">
                        <div class="card card-body">
                            <dl>
                                <dd>
                                    <ol>
                                        <li>
                                            Все данные хранятся в локальной БД Postgres;
                                        </li>
                                        <li>
                                            Все пользователи разделены по ролям: ADMIN, USER, SUPERUSER. Все новые
                                            зарегистрированные пользователи имеют роли USER и SUPERUSER;
                                        </li>
                                        <li>
                                            ADMIN может создавать, изменять и удалять пользователей;
                                        </li>
                                        <li>
                                            Регистрация пользователя с подтверждением регистрации и возможностью
                                            восстановить
                                            пароль по e-mail. Пароли хранятся в базе в зашифрованном виде;
                                        </li>
                                        <li>
                                            Вывод трат осуществляется помесячно. Стартовый день месяца можно задать.
                                            Траты в
                                            таблице упорядочены по дате;
                                        </li>
                                        <li>
                                            Траты выводятся в главную таблицу в столбцы по типам. Для некоторых
                                            типов
                                            отображается описание траты;
                                        </li>
                                        <li>
                                            В верхней строке каждой колонки отображается сумма трат за месяц. Также
                                            отображается
                                            сумма всех трат за текущий период;
                                        </li>
                                        <li>
                                            Можно перейти в колонку каждого типа трат, где будет отображено больше
                                            информации;
                                        </li>
                                        <li>
                                            Траты заносятся либо на отдельной странице с заполнением необходимых
                                            полей,
                                            либо
                                            прямо в таблице в специально предусмотренные для этого две верхние
                                            строки.
                                            Нельзя
                                            занести "0", дробное или строковое значение;
                                        </li>
                                        <li>
                                            Можно удалять и редактировать траты;
                                        </li>
                                        <li>
                                            Пользователи могут объединяться в группы. Для этого пользователи могут
                                            отправлять
                                            приглашения со следующими ограничениями:
                                            <ul>
                                                <li>
                                                    Отправлять приглашения может только SUPERUSER;
                                                </li>
                                                <li>
                                                    После принятия приглашения роль SUPERUSER слетает и
                                                    устанавливается
                                                    стартовый день месяца приглашающего;
                                                </li>
                                                <li>
                                                    Нельзя отравить приглашение пользователю, состоящему в другой
                                                    группе;
                                                </li>
                                                <li>
                                                    Нельзя иметь суммарное количество друзей и отправленных
                                                    приглашений
                                                    более 5
                                                    (на текущий момент);
                                                </li>
                                            </ul>
                                        </li>
                                        <li>
                                            При приёме приглашения вступить в группу все отправленные и полученные
                                            приглашения
                                            удаляются;
                                        </li>
                                        <li>
                                            Пользователи могут просматривать и удалять свои отправленные и
                                            полученные
                                            приглашения;
                                        </li>
                                        <li>
                                            В группе можно:
                                            <ul>
                                                <li>
                                                    Полный доступ к тратам членов группы, но принадлежность траты
                                                    изменить
                                                    нельзя;
                                                </li>
                                                <li>
                                                    Устанавливать цвет траты для каждого пользователя группы;
                                                </li>
                                                <li>
                                                    Удалиться из группы. При этом SUPERUSER восстанавливается;
                                                </li>
                                                <li>
                                                    Только для SUPERUSER:
                                                    <ul>
                                                        <li>
                                                            Отправлять приглашения для вступления в группу;
                                                        </li>
                                                        <li>
                                                            Удалять пользователей;
                                                        </li>
                                                        <li>
                                                            Менять роли пользователей (убирать или восстанавливать
                                                            SUPERUSER);
                                                        </li>
                                                        <li>
                                                            Удалить группу – у всех пользователей восстановится
                                                            SUPERUSER,
                                                            все
                                                            пользователи будут видеть только свои траты;
                                                        </li>
                                                        <li>
                                                            Удалиться из группы. При этом, если в группе не остаётся
                                                            SUPERUSER,
                                                            то эта роль восстанавливается у первого;
                                                        </li>
                                                        <li>
                                                            Установить в группе единое число начала месяца;
                                                        </li>
                                                    </ul>
                                                </li>
                                            </ul>
                                        </li>
                                    </ol>
                                </dd>
                            </dl>
                        </div>
                    </div>
                    <!--                    </dl>-->
                </div>
            </div>
            <div class="col"></div>
        </div>

        <div sec:authorize="isAnonymous()" class="row p-3">
            <div class="col"></div>
            <div class="col d-flex justify-content-center">
                <a class="btn btn-lg btn-secondary" th:href="@{/register}">Регистрация &raquo;</a>
            </div>
            <div class="col"></div>
        </div>
    </div>
</div>
</div>
<!--    copyright-->
<div th:replace="~{fragments/footer :: copy}"></div>
</body>
</html>